namespace SpecificationPatternCodeV2.Interfaces
{
	public interface ISpecification<T>
	{
		bool IsSatisfiedBy(T candidate1);
		ISpecification<T> And(ISpecification<T> other);
		ISpecification<T> Or(ISpecification<T> other);
		ISpecification<T> Not();
	}
}